Acoustic parameter adjustment

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for adjusting acoustic parameters. In one aspect, a method includes receiving an identifier associated with an enclosure for a computing device, transmitting data identifying the identifier associated with the enclosure for the computing device, and receiving one or more physical parameters of the enclosure for the computing device. The method also includes based on the one or more physical parameters of the enclosure for the computing device, determining, one or more acoustic parameter adjustments of the computing device in the enclosure, the one or more acoustic parameter adjustments being configured to preserve one or more acoustic characteristics of the computing device out of the enclosure while the computing device is in the enclosure, and based on the one or more acoustic parameter adjustments, adjusting the one or more acoustic parameters of the computing device.

BACKGROUND

The present specification relates to protective cases for mobilecomputing devices.

Computing devices such as mobile phones often use multiple microphonesto improve the quality of a user's voice for telephony and VoIP. Themultiple microphones may be used for features such as noise suppressionand echo cancellation.

SUMMARY

Acoustic parameters of computing devices are generally tuned when thecomputing devices are “bare,” or not in an enclosure. However, when acomputing device is secured to an enclosure, acoustic characteristics ofthe computing device may change. If a computing device is secured to anenclosure and maintains the acoustic parameters that are tuned for thecomputing device out of an enclosure, the acoustic characteristics ofthe computing device may deteriorate.

The methods described in this specification may automatically adjustacoustic parameters of a computing device in an enclosure. Using anidentifier associated with an enclosure, the computing device canidentify physical parameters of the enclosure. The physical parametersof the enclosure can be used to determine acoustic parameter adjustmentsof the computing device when the computing device is in the enclosure.Based on the determined acoustic parameter adjustments, the computingdevice can adjust acoustic parameters of the computing device tomaintain desired acoustic characteristics when the computing device isin the enclosure.

In some implementations, methods for adjusting acoustic parameters of acomputing device include tuning a computing device to a particularacoustic configuration when the computing device is to be secured in anenclosure. The computing device can be tuned to account for excessivefeedback between a speaker and a microphone of the computing device.Specifically, the computing device can be tuned to account for feedbackthat occurs when the computing device is secured to an enclosure. Forexample, the computing device can receive little to no feedback when ina first mode, such as speakerphone mode, and when not secured to anenclosure. However, while the computing device remains in the first modeand is secured to the enclosure, the feedback received by the computingdevice may increase. In this instance, the mode of the computing deviceand/or the acoustic parameters corresponding to mode of the computingdevice, may be adjusted to account for the feedback that results fromthe computing device being secured to the enclosure. In certain aspects,the computing device may adjust the acoustic parameters of the computingdevice according to physical parameters of the enclosure. The physicalparameters of the enclosure may be received or determined by thecomputing device. The physical parameters be determined using anidentifier associated with the enclosure and/or by the computing deviceperforming self-diagnostic tests that determine the physical parametersof the enclosure by comparing generated and received audio.

One innovative aspect of the subject matter described in thisspecification is embodied in methods that include the actions ofreceiving, by a computing device, an identifier associated with anenclosure for the computing device, transmitting, by the computingdevice, data identifying the identifier associated with the enclosurefor the computing device, and receiving, by the computing device, one ormore physical parameters of the enclosure for the computing device. Themethods can also include the actions of based on the one or morephysical parameters of the enclosure for the computing device,determining, by the computing device, one or more acoustic parameteradjustments of the computing device in the enclosure, the one or moreacoustic parameter adjustments being configured to preserve one or moreacoustic characteristics of the computing device out of the enclosurewhile the computing device is in the enclosure, and based on the one ormore acoustic parameter adjustments, adjusting, by the computing device,the one or more acoustic parameters of the computing device.

Other implementations of this and other aspects include correspondingsystems, apparatus, and computer programs, configured to perform theactions of the methods, encoded on computer storage devices.

Implementations may each optionally include one or more of the followingfeatures. For instance, the methods can include determining that a usermode of the computing device is speakerphone mode, wherein the modeincludes a set of predefined acoustic parameters, wherein adjusting theone or more acoustic parameters is based on determining that the usemode of the computing device is speakerphone mode. The methods can alsoinclude determining that a use mode of the computing device is handsetmode or headset mode, and based on determining that the use mode of thecomputing device is handset mode or headset mode, adjusting the one ormore acoustic parameters to the one or more acoustic parameters of thecomputing device out of the enclosure.

In certain aspects, the methods can include generating by a speaker ofthe computing device, reference audio, receiving, by a microphone of thecomputing device, the generated reference audio, and comparing thereference audio to the received reference audio, wherein adjusting theone or more acoustic parameters is based on comparing the referenceaudio to the received reference audio. The methods can further includedetermining that the enclosure is secured on the computing device,wherein adjusting the one or more acoustic parameters is based ondetermining that the enclosure is secured on the computing device.

In some aspects, the one or more physical parameters can include one ormore of a material type of the enclosure, dimensions of the enclosure,and physical properties of the enclosure. The identifier can include oneor more of a web address, a tag, a barcode, a matrix barcode, a uniquelyidentifiable series of characters, and a wireless passive communicationtag. Additionally, the one or more acoustic parameter adjustments caninclude one or more of echo cancellation, echo reduction, noisecancellation, noise reduction, feedback cancellation, feedbackreduction, adaptive gain control, speaker protection, frequency responsecalibration, and wind noise suppression.

Advantageous implementations can include one or more of the followingfeatures. The methods for adjusting acoustic parameters can increase theperformance of audio processing features for voice communications of acomputing device. The methods can be used to minimize the reception ofmuffled audio due to the computing device being secured to an enclosure.The methods can also be used to account for and reduce echoes that occurwhen audio is received by the computing device as it is secured to anenclosure. In some aspects, the methods for adjusting acousticparameters of a computing device can use identifiers associated withenclosures to identify physical parameters of the enclosures. Thephysical parameters of the enclosures can be used by the computingdevice to automatically adjust acoustic parameters of the computingdevice. By adjusting the acoustic parameters of the computing device,the computing device can enhance the reception and transmission ofaudio. In other aspects, the methods can include the computingperforming self-diagnostic tests that seek to compare audio signalsagainst noise signals. By adjusting the acoustic parameters of thecomputing device, the computing device can be configured to reduce thelevels of unwanted audio and/or noise signals. The methods can include aplurality of different acoustic configurations for the computing devicethat correspond to a variety of different enclosures and modes of thecomputing device. The plurality of different acoustic configurations canmaintain acoustic features of the computing device without an enclosure,while the computing device is secured to an enclosure.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features andadvantages of the invention will become apparent from the description,the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an example system for adjusting acousticparameters of a computing device.

FIG. 2 is a diagram of an example system for adjusting acousticparameters of a computing device.

FIG. 3 is a flow chart illustrating an example process for adjustingacoustic parameters.

FIG. 4 is a flow chart illustrating an example process for adjustingacoustic parameters using reference audio.

FIG. 5 is a diagram of an example of a computer device and a mobilecomputer device.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

This document discloses methods, systems, and devices that are used toadjust acoustic parameters of a computing device that is secured to anenclosure. As discussed in more detail below, the methods of the presentdisclosure address acoustic aspects of a computing device when thecomputing device is secured to an enclosure. The methods includeadjusting acoustic parameters of the computing device based on physicalproperties of the enclosure. The acoustic parameters can be adjusted sothat acoustic characteristics of the computing device out of theenclosure are preserved while the computing device is in the enclosure.The acoustic parameters can be adjusted according to tuning that occursas a result of receiving information associated with an identifier. Insome aspects, the identifier can correspond to a particular enclosure.For example, the computing device may identify an identifier thatcorresponds to the particular enclosure and receive physical parametersof the particular enclosure based on the identifier. In this instance,the computing device can be configured to adjust acoustic parametersbased on the received physical parameters that correspond to theidentifier of the enclosure.

FIG. 1 is a diagram of an example system 100 for adjusting acousticparameters of a computing device. The example system 100 includes anetwork 102, such as a local area network (LAN), a wide area network(WAN), the Internet, or any combination thereof. The network 102connects a computing device 104 and a server 106. The example system 100may include many different computing devices 104 and servers 106.

The computing device 104 is an electronic device that is capable ofrequesting and receiving resources over the network 102. Examplecomputing devices 104 include personal computers, mobile communicationdevices, and other devices that can send and receive data over thenetwork 102. The computing device 104 is also capable of adjustingacoustic parameters of the computing device 104 based on receivedresources such as physical parameters of enclosures.

At event (A), the computing device 104 can be configured to receiveresources such as an identifier 114 associated with an enclosure 112.The identifier 114 can be located on the enclosure 112. The identifiercan also be located on a container that stores the enclosure 114. Forexample, the identifier 114 may be located on the inside of theenclosure 114. In this instance, the identifier 114 may be hidden fromplain sight when secured to the computing device 104. In anotherexample, the enclosure 112 may be stored in a container prior to beingsecured to the computing device 104. In this instance, the identifier114 may be located at the container of the enclosure 112, rather than onthe enclosure 112 itself. The identifier 114 can include one or moreidentifiers such as a web address, a tag, a barcode, a matrix barcode, auniquely identifiable series of characters, a passive wirelesscommunication tag, and the like. The identifier 114 may be unique to theenclosure 112 or may correspond to one or more particular enclosures.

The enclosure 112 can include a case or container that may be secured tothe computing device 104. The enclosure 112 may be used to protect thecomputing device 104 from damages such as physical damage, water damage,and the like. The enclosure 112 can be pre-packaged in a container, andremoved from the container to be secured to the computing device 104.The enclosure 112 can include physical parameters that definecharacteristics of the enclosure 112. The physical parameters caninclude a material type of the enclosure 112, dimensions of theenclosure 112, physical properties of the enclosure 112, and the like.

Referring again to event (A), the computing device 104 can be configuredto receive the identifier 114 corresponding to the enclosure 112. Thecomputing device 104 may receive the identifier 114 via a camera of thecomputing device 104. For example, the computing device 104 may take apicture of the identifier 114, and process the contents of theidentifier 114 for transmission to the server 106. In another example,the computing device 104 may be configured to persistently scan anenvironment using a camera of the computing device 104. In thisinstance, the computing device 104 may be configured to recognize theidentifier 114 within the environment, and extract data identifying theidentifier when recognized. In another example, the computing device 104may be configured to receive the identifier 114 corresponding to theenclosure 112 via near field communication (NFC).

In certain aspects, the computing device 104 is configured to identifythe enclosure 112 using the identifier 114. In this instance, thecomputing device 104 may access physical parameters of the enclosure 112that are stored locally at the computing device 104. The computingdevice 104 can access the locally stored physical parameters and adjustone or more acoustic parameters of the computing device 104 accordingly.

At event (B), the computing device 104 transmits data associated withthe identifier 114 to the server 106. The computing device 104 transmitsdata associated with the identifier 114 to the server 106 so that theserver may transmit physical parameters associated with the enclosure112 to the computing device 104. The computing device 104 may beconfigured to transmit the identifier 112 to the server 106. Thecomputing device 104 may also be configured to process the identifier114, to extract data identifying the identifier 112. For example, thecomputing device 104 may be configured to extract data from theidentifier 112 that identifies the enclosure 114 as a specificenclosure. In this instance, the computing device 104 may be configuredto transmit a request to the server 104 that requests physicalparameters of the specific enclosure 112.

The server 106 may include data that maps identifiers and/or enclosuresto physical parameters of specific enclosures. The data can be stored ina data structure such as a lookup table. For example, the physicalparameters and the identifiers of particular enclosures may be mapped toeach other in a predetermined lookup table. Upon receiving the requestfor physical parameters of the enclosure 112, the server 106 can beconfigured to use the lookup table to access requested information suchas physical parameters of the enclosure 112.

In certain aspects, the computing device 104 can be configured to storedata that maps identifiers and/or enclosures to physical parameters ofspecific enclosures. In this instance, the data may be stored locally atthe computing device 104 in a data structure such as a lookup table.Thus, the computing device 104 may be configured to process theidentifier 114, upon receiving the identifier 114, to determine thephysical parameters of the corresponding enclosure 112.

In some aspects, the server 106 may receive data from a manufacturer ofthe enclosure 112. The data can include the physical parameters of theenclosure 112. Additionally, or alternatively, the identifier 114 mayinclude data that points to a server associated with the manufacturer.The server associated with the manufacturer can include informationcorresponding to the enclosure 112 such as the physical parameters ofthe enclosure. The server associated with the manufacturer may beseparate from the server 106 and in communication with the server 106via the network 102. Alternatively, the server 106 may be the serverassociated with the manufacturer.

At event (C), the server 106 accesses the physical parameters of theenclosure 112 using the identifier 114 and/or data associated with theidentifier 114. The server 106 may access the physical parameters of theenclosure 112 using the predetermined data structure. The server 106 isalso configured to transmit the physical parameters of the enclosure 112as a response 122 to the initial request from the computing device 104.The response 112 can include one or more physical parameters of theenclosure 112. In certain aspects, the response 122 can include dataindicating that the identifier 114 and/or the data associated with theidentifier 114 is not mapped to a particular enclosure. In thisinstance, the server 106 may be configured to generate a response 122indicating that the identifier 114 is not associated with an enclosure.The server 106 can be configured to transmit the response 122 to theclient device 104.

At event (D), the computing device 104 receives the response 122 fromthe server 106 and processes the response 112 to tune acoustic featuresof the computing device 104. For example, the computing device 104 maybe configured to receive physical parameters of the enclosure 112 anddetermine one or more acoustic parameter adjustments 132 based on thereceived physical parameters. The acoustic parameter adjustments may bedetermined based on the dimensions, material, or other physicalproperties of the enclosure 112. As such, the computing device 104 candetermine acoustic adjustment parameters including echo cancellationand/or reduction, noise cancellation and/or reduction, feedbackcancellation and/or reduction, and the like. In certain aspects, thecomputing device 104 may include one or more microphones and one or morespeakers. In this instance, the computing device 104 can determineacoustic adjustment parameters further including microphone gainadjustment, microphone equalization parameters, speaker gain adjustment,speaker equalization adjustment, speaker non-linear processing (e.g.,multi-band compressor) adjustment, and the like. In an example, when thecomputing device 104 is secured to the enclosure 112, the enclosure 112may act as a filter on the speakers of the computing device 104. In thisinstance, the computing device 104 may adjust the equalization of thespeakers to account for the enclosure 112 acting as a filter.

The acoustic adjustment parameters can be determined by the computingdevice 104 in order to preserve acoustic characteristics of thecomputing device 104. Specifically, the acoustic adjustment parameterscan be configured to preserve acoustic characteristics of the computingdevice 104 out of the enclosure 112 while the computing device 104 is inand/or secured on the enclosure 112. In certain aspects, the acousticcharacteristics of the computing device 104 out of the enclosure 112 maynot be fully preserved while the computing device 104 is in theenclosure 112. In this instance, the computing device 104 can beconfigured to preserve as many of the acoustic characteristics aspossible. The computing device 104 may select particular acousticcharacteristics (e.g., echo levels) to preserve and adjust a selectnumber of acoustic parameters accordingly. For example, the computingdevice 104 may tune a select number of microphones of the computingdevice 104 if feedback between a speaker of the computing device 104 anda particular microphone of the computing device 104 cannot be corrected.In another example, the computing device 104 may adjust the role of amicrophone to preserve certain acoustic characteristics. In thisinstance, the computing device 104 may adjust the microphone from beinga noise reference, that compares audio input to predetermined noisesignals, to a voice reference, that compares audio input topredetermined voice signals.

Further, the computing device 104 can be configured to adjust one ormore acoustic parameters 134 of the computing device 104 using thedetermined acoustic adjustment parameters 132. For example, thecomputing device 104 can determine acoustic adjustment parameters 132 toreduce echo levels of received audio data. The computing device 104 canthen determine a time and a level of received audio data, so that thecomputing device 104 may adjust acoustic parameters 134 that enable echolevels of audio data to be lowered to a predetermined echo threshold. Inthis instance, the predetermined echo threshold may be the same when thecomputing device 104 is out of the enclosure 112 and when the computingdevice 104 is in the enclosure. As such, the acoustic parameters may beadjusted to account for the computing device 104 being secured to theenclosure 112, so that the echo levels resulting from the computingdevice 104 being secured to the enclosure 112 can be accounted for bythe acoustic parameter adjustment 134.

In certain aspects, the server 106 can be configured to determineacoustic parameter adjustments for the computing device 104. In thisinstance, the server 106 can use the identifier 114 of the enclosure 112as well as data identifying the computing device 104 to determineacoustic parameters adjustments for the computing device 104. The server106 can also be configured to provide the determined acoustic parameteradjustments to the computing device 104 via the response 122. As such,the response 122 may include instructions for adjusting acousticparameters of the computing device 104.

The computing device 104 can provide an acknowledgement when theidentifier 114 is identified by the computing device 104. In thisinstance, the acknowledgment can include a visual representation of theidentifier 114 that is provided at a user interface of the computingdevice 104. The acknowledgement can also include audial feedback andtactile feedback, or any combination of visual, audial, and tactilefeedback provided by the computing device 104.

The computing device 104 can also provide an acknowledgment when thecomputing device 104 is determined to be secured to the enclosure 112.The acknowledgment can include audial feedback, visual feedback, tactilefeedback, or any combination thereof. The acknowledgment can indicatethat the acoustic characteristics of the computing device 104 may bealtered by the computing device 104 being secured to the enclosure 112.In this instance, the computing device 104 can be configured to providea notification at the user interface the computing device 104 indicatingthat acoustic adjustment may occur to account for the altered acousticcharacteristics of the computing device 104 in the enclosure 112.

The computing device 104 can further provide an acknowledgement when theacoustic parameter adjustment is occurring and/or complete. Theacknowledgment can include audial feedback, visual feedback, tactilefeedback, or any combination thereof. The acknowledgment can indicatethat the acoustic parameters are presently being adjusted, or that theacoustic parameters have changed to preserve acoustic characteristics ofthe computing device 104.

FIG. 2 is a diagram of an example system 200 for adjusting acousticparameters of a computer device. The system 200 includes a computingdevice 202 and an enclosure 212. The computing device 202 is anelectronic device that is capable of receiving an identifier andadjusting acoustic parameters based on data associated with theidentifier. Example computing devices 202 include personal computers,mobile communication devices, and other devices that can receive andprocess data.

The computing device 202 can be configured to receive an identifier 214associated with the enclosure 212 via a camera of the computing device202. For example, the computing device 202 may take a picture of theidentifier 214, to process the contents of the identifier 214. Inanother example, the computing device 202 may be configured topersistently scan an environment using a camera of the computing device202. In this instance, the computing device 104 may be configured torecognize the identifier 214 within the environment, and extract dataidentifying the identifier when recognized.

In some aspects, the computing device 202 may be unable to identify theenclosure 232 from the identifier 214 and/or data associated with theidentifier 214. In this instance, the computing device 202 may includeself-diagnostic capabilities that are used to determine the acousticcharacteristics of the computing device 104 in the enclosure 212. Thecomputing device may be configured to determine the acousticcharacteristics in real-time or near real-time. For example, thecomputing device 202 can further include a speaker 222 for generatingaudio and a microphone 226 for receiving audio. In response to notidentifying the enclosure 232 from the identifier 214, the computingdevice 202 may be configured to generate reference audio 232 by thespeaker 222 of the computing device 202. The reference audio 224 can beemitted by the computing device 202 and include audio signals that arepredetermined at the computing device 202. The computing device 202 maybe configured to receive audio signals 228, including the generatedreference audio 224, by the microphone 226 of the computing device 202.As such, the computing device 202 may receive generated audio 236 thatincludes the initial reference audio 224, noise, echoes corresponding tothe initial reference audio, and the like.

The computing device 202 can be configured to initiate theself-diagnostic sequence on command. For example, the computing device202 can receive input via a user interface of the computing device 202that instructs the computing device 202 to adjust acoustic parameters ofthe computing device 202. In another example, the computing device 202can be configured to perform the self-diagnostic sequence in response todetermining that the computing device 202 is secured in the enclosure212.

The computing device 202 can provide acknowledgments via the userinterface of the computing device 202 when the self-diagnostic sequenceis initiated, when the self-diagnostic sequence is being performed,and/or when the self-diagnostic sequence is complete. Theacknowledgements can include one or more of visual feedback, audialfeedback, and tactile feedback at the computing device 202.

The computing device 202 can be configured to compare 238 the referenceaudio 224 to the received reference audio 228. Using the known audiosignals of the reference audio 224, the computing device 202 can beconfigured to determine unwanted audio signals existing in the receivedreference audio 228. Based on the comparison 238, the computing device202 can be configured to identify raw echo levels, environmental audiosignals, feedback, and the like.

In response to comparing the reference audio 224 to the receivedreference audio 228, the computing device 202 can adjust acousticparameters of the computing device 202. Specifically, the computingdevice 202 may adjust acoustic parameters of the computing device 202 sothat acoustic parameters of the computing device 202 out of theenclosure 212 are maintained while the computing device 202 is securedto the enclosure 212.

FIG. 3 is a flow chart illustrating an example process 300 for adjustingacoustic parameters. The process 300 can be performed by one or moreservers or other computing devices. For example, operations of theprocess 300 can be performed by computing device 104 of FIG. 1.Operations of the process 300 can also be implemented as instructionsstored on a non-transitory computer readable medium, and when theinstructions are executed by one or more servers (or other computingdevices), the instructions cause the one or more servers to performoperations of the process 300.

At step 310, a computing device receives an identifier associated withan enclosure for the computing device. The identifier may be scanned bya camera of the computing device. The identifier may be included in apicture taken by the camera of the computing device. The identifier canbe located on the enclosure or on a container of the enclosure. Theidentifier may include a web address, a tag, a barcode, a matrixbarcode, a uniquely identifiable series of characters, a wirelesspassive communication tag, and the like. Specifically, the identifiercan be used to identify a particular enclosure. For example, theidentifier can include a QR code that encodes data that associates theidentifier with a specific enclosure.

At step 320, the computing device transmits data identifying theidentifier associated with the enclosure. The computing device cantransmit data of the identifier to a server. The transmitted data caninclude the identifier itself, or data that corresponds to the receivedidentifier. The identifier may be transmitted in real-time or nearreal-time as the identifier is received by the computing device. In someaspects, the data identifying the identifier is stored locally on thecomputing device. The data identifying the identifier can be accessedand transmitted to the server after a predetermined amount of time, orwhen input is received at the computing device to perform thetransmission.

At step 330, the computing device receives physical parameters of theenclosure. The physical parameters of the enclosure may be accessed bythe server using the data identifying the identifier. The physicalparameters of a plurality of different enclosures may be stored at theserver and associated with data identifying the identifiers of each ofthe enclosures. The server can be configured to access physicalparameters corresponding to identifiers received by the computingdevice. Additionally, the server can be configured to determine when thedata identifying the identifier is not matched to a particularenclosure. In this instance, the server may be configured to transmit aresponse indicating that the data is not associated with a particularenclosure to be received by the computing device.

At step 340, the computing device determines acoustic parameteradjustments to preserve acoustic characteristics. Specifically, thecomputing device determines acoustic parameter adjustments of thecomputing device when the computing device is in the enclosure. Theacoustic parameters adjustments can be configured to preserve acousticcharacteristics of the computing device out of the enclosure while thecomputing device is in the enclosure. The acoustic parameter adjustmentscan include changing one or more acoustic parameters of the computingdevice to preserve acoustic characteristics of the computing devicewhile it is in the enclosure.

At step 350, the computing device adjusts acoustic parameters of thecomputing device. Specifically, the computing device adjusts acousticparameters of the computing device based on the determined acousticparameters adjustments. The computing device can adjust the acousticparameters to alter characteristics of the computing device when thecomputing device is in or secured to the enclosure. The characteristicsof the computing device may be different for different modes of thecomputing device. The modes of the computing device can include aspeakerphone mode, a headset mode, a handset mode, a hands-free mode,and the like. Each of the modes can include a predefined set of acousticparameters. As such, when the computing device changes modes, thecomputing device may automatically adjust the acoustic parameters.

In an example, the computing device can be configured to determine thatthe computing device is in speakerphone mode and that the speakerphonemode corresponds to a predefined set of acoustic parameters. If thecomputing device determines that the computing device is in speakerphonemode, the computing device can be configured to automatically adjustacoustic parameters of the computing device. In this instance, thecomputing device may automatically adjust the acoustic parametersaccording to a predefined set of acoustic parameter adjustments. Incertain aspects, the computing device can be configured to determinethat the computing device is in handset mode or headset mode. Inresponse to determining that the computing device is in handset mode orheadset mode, the computing device may adjust acoustic parameters of thecomputing device based on the acoustic characteristics of the computingdevice out of the enclosure. In this instance, the computing device maybe configured to automatically adjust the acoustic parameters accordingto acoustic characteristics of the computing device out of the enclosurewhen the computing device is in handset or headset modes. The computingdevice can also be configured to determine that the computing device issecured to the enclosure. As a result, the computing device may adjustacoustic parameters of the computing device based on determining thatthe enclosure is secured on the computing device.

In certain aspects, the acoustic parameters may only be adjusted whenthe computing device is in speakerphone mode. In this instance, if thecomputing device is determined to be in handset or headset mode, thecomputing device may return to unadjusted acoustic parameters. As such,the computing device may be secured to the enclosure, but if thecomputing device is in handset or headset mode, the computing devicechanges to the initial, or unadjusted, acoustic parameters.

FIG. 4 is a flow chart illustrating an example process 400 for adjustingacoustic parameters using reference audio. The process 400 can beperformed by one or more servers or other computing devices. Forexample, operations of the process 400 can be performed by computingdevice 104 of FIG. 1. Operations of the process 400 can also beimplemented as instructions stored on a non-transitory computer readablemedium, and when the instructions are executed by one or more servers(or other computing devices), the instructions cause the one or moreservers to perform operations of the process 400.

At step 410, the computing device generates reference audio by a speakerof the computing device. The computing device can be configured to emita predefined audio signal by the speaker. For example, the computingdevice can emit reference audio via the speaker while the computingdevice is secured to the enclosure. The reference audio may correspondto a known audio signal that is received when the computing device isout of the enclosure. The computing device may generate the referenceaudio to contrast the reference audio with audio that is received whilethe computing device is in the enclosure. In certain aspects, thecomputing device automatically generates the reference audio when thecomputing device is determined to be secured to the enclosure.

At step 420, the computing device receives the generated reference audioby a microphone of the computing device. The computing device receivesthe generated reference audio in part to tune the acoustic settings ofthe computing device in real time. In some implementations, thecomputing device may generate reference audio and receive the generatedreference audio when a particular enclosure is determined to beunidentified by an identifier associated with the particular enclosure.As such, the computing device may use the generated reference signal andthe received reference signal to determine physical parameters of theenclosure.

At step 430, the computing device compares the generated reference audioto the received reference audio. The computing device may perform thecomparison to differentiate audio signals from noise signals. As such,the computing device can perform the comparison to effectively determineacoustic parameter adjustments while the computing device is in anenclosure that includes unidentified physical properties. In certainaspects, the computing device can determine physical properties of theunidentified enclosure based on the comparison. Further, the computingdevice may be configured to use the determined physical properties todetermine acoustic parameter adjustments that are configured to preserveacoustic characteristics of the computing device out of the enclosurewhile the computing device is in the enclosure.

At step 440, the computing device adjusts the acoustic parameters basedon the comparing. The computing device can be configured to adjust theacoustic parameters to a predefined tuning that includes a predeterminedset of acoustic parameters based on the comparing. The computing devicecan also be configured to determine adjustments to the acousticparameters based on the comparing. The computing device may adjust theacoustic parameters in real-time or near real-time as the comparing isperformed.

As an example, the computing device may adjust acoustic parameters basedon received audio data that includes audio feedback or echoes. In thisinstance, a first echo level may be determined when the computing deviceis out of the enclosure and a second echo level may be determined whenthe computing device is in the enclosure. The first and second echolevels may be compared to determine that the second echo level isgreater than the first echo level. As such, the computing device may beconfigured to determine that acoustic parameters require tuning so thatthe second echo level is suppressed. The second echo level may besuppressed to maintain acoustic characteristics of the computing deviceout of the enclosure.

In another example, the computing device may use one or more speakers toemit audio at the computing device. The computing device may determinethat the feedback received by a microphone of the computing device isgreater when the computing device is in the enclosure than when thecomputing device is not in the enclosure. In this instance, thecomputing device may determine acoustic parameter adjustments that lowerthe feedback while the computing device is in the enclosure. In responseto determining the acoustic parameter adjustments, the computing devicemay be configured to adjust the level of audio emission by at least oneof the speakers of the computing device. As such, the computing devicemay be configured to emit audio out of only one of the speakers when thecomputing device is in the enclosure. The computing device may only emitaudio out of one of the speakers to suppress the total amount ofreceived feedback.

FIG. 5 is a diagram of an example of a generic computer device 500 and ageneric mobile computer device 550, which may be used with thetechniques described here. Computing device 500 is intended to representvarious forms of digital computers, such as laptops, desktops,workstations, personal digital assistants, servers, blade servers,mainframes, and other appropriate computers. Computing device 550 isintended to represent various forms of mobile devices, such as personaldigital assistants, cellular telephones, smartphones, and other similarcomputing devices. The components shown here, their connections andrelationships, and their functions, are meant to be exemplary only, andare not meant to limit implementations of the inventions describedand/or claimed in this document.

Computing device 500 includes a processor 502, memory 504, a storagedevice 506, a high-speed interface 508 connecting to memory 504 andhigh-speed expansion ports 510, and a low speed interface 512 connectingto low speed bus 514 and storage device 506. Each of the components 502,504, 506, 508, 510, and 512, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 502 may process instructions for executionwithin the computing device 500, including instructions stored in thememory 504 or on the storage device 506 to display graphical informationfor a GUI on an external input/output device, such as display 516coupled to high speed interface 508. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices500 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 504 stores information within the computing device 500. Inone implementation, the memory 504 is a volatile memory unit or units.In another implementation, the memory 504 is a non-volatile memory unitor units. The memory 504 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 506 is capable of providing mass storage for thecomputing device 500. In one implementation, the storage device 506 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product may be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 504, the storage device 506,or a memory on processor 502.

The high speed controller 508 manages bandwidth-intensive operations forthe computing device 500, while the low speed controller 512 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 508 iscoupled to memory 504, display 516 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 510, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 512 is coupled to storage device 506 and low-speed expansionport 514. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 500 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 520, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 524. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 522. Alternatively, components from computing device 500 may becombined with other components in a mobile device (not shown), such asdevice 550. Each of such devices may contain one or more of computingdevice 500, 550, and an entire system may be made up of multiplecomputing devices 500, 550 communicating with each other.

Computing device 550 includes a processor 552, memory 564, aninput/output device such as a display 554, a communication interface566, and a transceiver 568, among other components. The device 550 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 550, 552,564, 554, 566, and 568, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 552 may execute instructions within the computing device540, including instructions stored in the memory 564. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor may provide, for example,for coordination of the other components of the device 550, such ascontrol of user interfaces, applications run by device 550, and wirelesscommunication by device 550.

Processor 552 may communicate with a user through control interface 548and display interface 556 coupled to a display 554. The display 554 maybe, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. The display interface 556 may comprise appropriatecircuitry for driving the display 554 to present graphical and otherinformation to a user. The control interface 558 may receive commandsfrom a user and convert them for submission to the processor 552. Inaddition, an external interface 562 may be provide in communication withprocessor 552, so as to enable near area communication of device 550with other devices. External interface 562 may provide, for example, forwired communication in some implementations, or for wirelesscommunication in other implementations, and multiple interfaces may alsobe used.

The memory 564 stores information within the computing device 550. Thememory 564 may be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 554 may also be provided andconnected to device 550 through expansion interface 552, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 554 may provide extra storage space fordevice 550, or may also store applications or other information fordevice 550. Specifically, expansion memory 554 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 554may be provide as a security module for device 550, and may beprogrammed with instructions that permit secure use of device 550. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 564, expansionmemory 554, memory on processor 552, or a propagated signal that may bereceived, for example, over transceiver 568 or external interface 562.

Device 550 may communicate wirelessly through communication interface566, which may include digital signal processing circuitry wherenecessary. Communication interface 566 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 568. In addition, short-range communication may occur, suchas using a Bluetooth, Wi-Fi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 550 mayprovide additional navigation- and location-related wireless data todevice 550, which may be used as appropriate by applications running ondevice 550.

Device 550 may also communicate audibly using audio codec 560, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 560 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 550. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 550.

The computing device 550 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 580. It may also be implemented as part of asmartphone 582, personal digital assistant, or other similar mobiledevice.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. For example, various formsof the flows shown above may be used, with steps re-ordered, added, orremoved.

Embodiments of the invention and all of the functional operationsdescribed in this specification can be implemented in digital electroniccircuitry, or in computer software, firmware, or hardware, including thestructures disclosed in this specification and their structuralequivalents, or in combinations of one or more of them. Embodiments ofthe invention can be implemented as one or more computer programproducts, e.g., one or more modules of computer program instructionsencoded on a computer readable medium for execution by, or to controlthe operation of, data processing apparatus. The computer readablemedium can be a machine-readable storage device, a machine-readablestorage substrate, a memory device, a composition of matter effecting amachine-readable propagated signal, or a combination of one or more ofthem. The term “data processing apparatus” encompasses all apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them. A propagated signal is an artificially generated signal, e.g.,a machine-generated electrical, optical, or electromagnetic signal thatis generated to encode information for transmission to suitable receiverapparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a stand-alone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Moreover, a computer can be embedded inanother device, e.g., a tablet computer, a mobile telephone, a personaldigital assistant (PDA), a mobile audio player, a Global PositioningSystem (GPS) receiver, to name just a few. Computer readable mediasuitable for storing computer program instructions and data include allforms of non-volatile memory, media and memory devices, including by wayof example semiconductor memory devices, e.g., EPROM, EEPROM, and flashmemory devices; magnetic disks, e.g., internal hard disks or removabledisks; magneto optical disks; and CD ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, embodiments of the invention canbe implemented on a computer having a display device, e.g., a CRT(cathode ray tube) or LCD (liquid crystal display) monitor, fordisplaying information to the user and a keyboard and a pointing device,e.g., a mouse or a trackball, by which the user can provide input to thecomputer. Other kinds of devices can be used to provide for interactionwith a user as well; for example, feedback provided to the user can beany form of sensory feedback, e.g., visual feedback, auditory feedback,or tactile feedback; and input from the user can be received in anyform, including acoustic, speech, or tactile input.

Embodiments of the invention can be implemented in a computing systemthat includes a back end component, e.g., as a data server, or thatincludes a middleware component, e.g., an application server, or thatincludes a front end component, e.g., a client computer having agraphical user interface or a Web browser through which a user caninteract with an implementation of the invention, or any combination ofone or more such back end, middleware, or front end components. Thecomponents of the system can be interconnected by any form or medium ofdigital data communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the invention or of what may beclaimed, but rather as descriptions of features specific to particularembodiments of the invention. Certain features that are described inthis specification in the context of separate embodiments can also beimplemented in combination in a single embodiment. Conversely, variousfeatures that are described in the context of a single embodiment canalso be implemented in multiple embodiments separately or in anysuitable subcombination. Moreover, although features may be describedabove as acting in certain combinations and even initially claimed assuch, one or more features from a claimed combination can in some casesbe excised from the combination, and the claimed combination may bedirected to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

In each instance where an HTML file is mentioned, other file types orformats may be substituted. For instance, an HTML file may be replacedby an XML, JSON, plain text, or other types of files. Moreover, where atable or hash table is mentioned, other data structures (such asspreadsheets, relational databases, or structured files) may be used.

Particular embodiments of the invention have been described. Otherembodiments are within the scope of the following claims. For example,the steps recited in the claims can be performed in a different orderand still achieve desirable results.

What is claimed is:
 1. A computer-implemented method, comprising:receiving, by a mobile device, an identifier of a case for the mobiledevice; transmitting, by the mobile device, the identifier of the casefor the mobile device; receiving, by the mobile device, one or morephysical parameters of the case of the mobile device; based on the oneor more physical parameters of the case of the mobile device,determining, by the mobile device, one or more acoustic parameteradjustments that preserve one or more acoustic characteristics of themobile device unattached to the case, while the case is attached to themobile device; determining, by the mobile device, that the case isattached to the mobile device; and based on determining that the case isattached to the mobile device, adjusting, by the mobile device, the oneor more acoustic parameters of the mobile device according to the one ormore acoustic parameter adjustments.
 2. The method of claim 1,comprising: determining that a use mode of the mobile device isspeakerphone mode, wherein adjusting the one or more acoustic parametersis based on determining that the use mode of the mobile device isspeakerphone mode.
 3. The method of claim 1, comprising: determiningthat a use mode of the mobile device is handset mode or headset mode;and based on determining that the use mode of the mobile device ishandset mode or headset mode, setting, by the mobile device, theadjusted one or more acoustic parameters to the one or more acousticparameters.
 4. The method of claim 1, comprising: generating, by aspeaker of the mobile device, reference audio; receiving, by one or moremicrophones of the mobile device, the generated reference audio; andcomparing, by the mobile device, the reference audio to the receivedreference audio; wherein adjusting the one or more acoustic parametersis based on comparing the reference audio to the received referenceaudio.
 5. The method of claim 1, wherein the one or more physicalparameters of the case include one or more of a material type of thecase, dimensions of the case, and physical properties of the case. 6.The method of claim 1, wherein the identifier of the case includes oneor more of a web address, a tag, a barcode, a matrix barcode, a uniquelyidentifiable series of characters, and a wireless passive communicationtag.
 7. The method of claim 1, wherein the one or more acousticparameter adjustments include one or more of echo cancellation, echoreduction, noise cancellation, noise reduction, feedback cancellation,feedback reduction, adaptive gain control, speaker protection, frequencyresponse calibration and wind noise suppression.
 8. A system,comprising: one or more computers and one or more storage devicesstoring instructions that are operable, when executed by the one or morecomputers, to cause the one or more computers to perform operationsincluding: receiving, by a mobile device, an identifier of a case forthe mobile device; transmitting, by the mobile device, the identifier ofthe case for the mobile device; receiving, by the mobile device, one ormore physical parameters of the case of the mobile device; based on theone or more physical parameters of the case of the mobile device,determining, by the mobile device, one or more acoustic parameteradjustments that preserve one or more acoustic characteristics of themobile device unattached to the case, while the case is attached to themobile device; determining, by the mobile device, that the case isattached to the mobile device; and based on determining that the case isattached to the mobile device, adjusting, by the mobile device, the oneor more acoustic parameters of the mobile device according to the one ormore acoustic parameter adjustments.
 9. The system of claim 8, whereinthe operations comprise: determining that a use mode of the mobiledevice is speakerphone mode, wherein adjusting the one or more acousticparameters is based on determining that the use mode of the mobiledevice is speakerphone mode.
 10. The system of claim 8, wherein theoperations comprise: determining that a use mode of the mobile device ishandset mode or headset mode; and based on determining that the use modeof the mobile device is handset mode or headset mode, setting, by themobile device, the adjusted one or more acoustic parameters to the oneor more acoustic parameters.
 11. The system of claim 8, wherein theoperations comprise: generating, by a speaker of the mobile device,reference audio; receiving, by one or more microphones of the mobiledevice, the generated reference audio; and comparing, by the mobiledevice, the reference audio to the received reference audio; whereinadjusting the one or more acoustic parameters is based on comparing thereference audio to the received reference audio.
 12. The system of claim8, wherein the one or more physical parameters of the case include oneor more of a material type of the case, dimensions of the case, andphysical properties of the case.
 13. A non-transitory computer storagemedium encoded with a computer program, the program comprisinginstructions that when executed by data processing apparatus cause thedata processing apparatus to perform operations comprising: receiving,by a mobile device, an identifier of a case for the mobile device;transmitting, by the mobile device, the identifier of the case for themobile device; receiving, by the mobile device, one or more physicalparameters of the case of the mobile device; based on the one or morephysical parameters of the case of the mobile device, determining, bythe mobile device, one or more acoustic parameter adjustments thatpreserve one or more acoustic characteristics of the mobile deviceunattached to the case, while the case is attached to the mobile device;determining, by the mobile device, that the case is attached to themobile device; and based on determining that the case is attached to themobile device, adjusting, by the mobile device, the one or more acousticparameters of the mobile device according to the one or more acousticparameter adjustments.
 14. The non-transitory computer storage medium ofclaim 13, wherein the operations comprise: determining that a use modeof the mobile device is speakerphone mode, wherein adjusting the one ormore acoustic parameters is based on determining that the use mode ofthe mobile device is speakerphone mode.
 15. The non-transitory computerstorage medium of claim 13, wherein the operations comprise: determiningthat a use mode of the mobile device is handset mode or headset mode;and based on determining that the use mode of the mobile device ishandset mode or headset mode, setting, by the mobile device, theadjusted one or more acoustic parameters to the one or more acousticparameters.
 16. The non-transitory computer storage medium of claim 13,wherein the operations comprise: generating, by a speaker of the mobiledevice, reference audio; receiving, by one or more microphones of themobile device, the generated reference audio; and comparing, by themobile device, the reference audio to the received reference audio;wherein adjusting the one or more acoustic parameters is based oncomparing the reference audio to the received reference audio.
 17. Thenon-transitory computer storage medium of claim 13, wherein the one ormore physical parameters of the case include one or more of a materialtype of the case, dimensions of the case, and physical properties of thecase.